Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

407
Vistas
¿Hay alguna diferencia entre la función "mutante" y los parámetros "inout" en Swift?

Según la documentación de Swift, tanto las palabras clave de mutación como las de entrada y salida se utilizan para modificar los tipos de valores desde dentro de una función. ¿Hay alguna diferencia entre "mutar" e "inout" y cualquier caso especial en el que necesitemos usar cualquiera de ellos?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

la mutating marca un método. inout marca un parámetro. Son cosas completamente diferentes.

Los métodos marcados con mutating pueden mutar a self , es decir, establecer propiedades de self , reasignarse a self mismos, etc.

 struct Foo { var foo: Int mutating func mutate() { foo += 1 // this is mutating self } }

Los parámetros marcados con inout básicamente se convierten en variables var , a diferencia de las constantes let . Puede cambiarlos y los cambios también se reflejarán en el lado de la persona que llama.

 func f(_ x: inout Int) { x = 10 } var a = 1 f(&a) print(a) // 10
over 4 years ago · Santiago Trujillo Denunciar

0

Para mí, veo la diferencia solo en los lugares donde se usan.

El parámetro marcado con la palabra clave inout le permite pasar su valor a cualquier método similar como referencia

 func square(inout num: Int) { num = num * num }

Por el contrario, el método marcado con la palabra clave mutating se usa en el alcance del tipo y le permite cambiar el valor de este método.

 extension Int { mutating func square() { self = self * self } }
over 4 years ago · Santiago Trujillo Denunciar

0

Los métodos de instancia de los tipos de valor no pueden cambiar las propiedades del tipo de valor (o el valor en sí), a menos que estén marcados como mutating .

Las funciones de cualquier tipo no pueden cambiar sus parámetros (y hacer que el cambio se propague fuera de la función) a menos que esos parámetros estén marcados como inout .

Hacen un trabajo similar, pero en diferentes contextos.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda